CC = gcc
CFLAGS = -I./include
BIN_DIR = ./bin
SRC_DIR = ./src

# 添加 main.o 到 OBJ 变量中
OBJ = $(SRC_DIR)/cebitwise.o $(SRC_DIR)/cepointer.o $(SRC_DIR)/ceunion.o $(SRC_DIR)/cebitfields.o $(SRC_DIR)/celibrary.o $(SRC_DIR)/main.o

all: $(BIN_DIR)/main

$(BIN_DIR)/main: $(OBJ)
	$(CC) $^ -o $@ $(CFLAGS)

# 通用规则，编译 .c 文件为 .o 文件
$(SRC_DIR)/%.o: $(SRC_DIR)/%.c
	$(CC) -c $< -o $@ $(CFLAGS)

clean:
	rm -f $(OBJ) $(BIN_DIR)/main